﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Runtime.InteropServices;
using System.Windows.Interop;
using UITLibraryManagement.View;
using UITLibraryManagement.ViewModel;

namespace UITLibraryManagement
{
    /// <summary>
    /// Interaction logic for Menu.xaml
    /// </summary>
    public partial class Menu : Window, IView
    {
        public Menu()
        {
            InitializeComponent();
            //Insert code required on object creation below this point.
            List<String> _ItemMenuQuanLy = new List<string>() {"Danh sách độc giả",
                                                               "Tìm độc giả",
                                                               "Trả ấn phẩm",
                                                               "Quản lý biên mục",
                                                               "Thêm độc giả",
                                                               "Thiết lập quy định",
                                                               "Tìm kiếm",
                                                               "Mượn ấn phẩm",
            };
            List<String> _ItemMenuDoiBong = new List<string>() {"Tra cứu đội bóng",
                                                               "Cập nhật hồ sơ đội bóng",
                                                               "Bảng xếp hạng",
                                                               "Thống kê đội bóng",
                                                               "Thêm sân",
                                                               "Cập nhật sân",
                                                               "Cập nhật vòng thi đấu"
            };
            List<String> _ItemMenuCauThu = new List<string>() {"Tra cứu cầu thủ",
                                                               "Cập nhật thông tin cầu thủ",
                                                               "Xóa cầu thủ", 
                                                               "Danh sách cầu thủ ghi bàn",
                                                               "Thống kê cầu thủ",
                                                               "Cập nhật loại cầu thủ",
                                                               "Cập nhật loại bàn thắng",
            };
            List<String> _ItemMenuHeThong = new List<string>() {"Phân quyền hệ thống",
                                                               "Cập nhật phân quyền",
                                                               "Đăng ký sử dụng",
                                                               "Sao lưu dữ liệu",
                                                               "Phục hồi dữ liệu",
                                                               "Cấu hình thiết bị",
                                                               "Cấu hình phần mềm",
                                                               "Quản lý dữ liệu được tạm xóa",
                                                               "Thoát"
            };

            CategoryListQuanly.MyItemsSource = _ItemMenuQuanLy;
            CategoryListDoibong.MyItemsSource = _ItemMenuDoiBong;
            CategoryListCauthu.MyItemsSource = _ItemMenuCauThu;
            CategoryListHethong.MyItemsSource = _ItemMenuHeThong;
        }

        private void CategoryListQuanly_MyMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            /////            Important to set e.Handed = true to prevent event routing              ////
            e.Handled = true;
            ////////////////////////////////////////////////////////////////////////////////////////////
            ListBoxItem item = sender as ListBoxItem;
            string itemIndex = item.Name;
            switch (itemIndex)
            {
                case "Item0":
                    {
                        
                    }
                    break;
                case "Item1":
                    {
                        
                    }
                    break;
                case "Item2":
                    {
                        QuanLyMuonTra wnd2 = new QuanLyMuonTra();
                        wnd2.Show();
                    }
                    break;
                 case "Item3":
                    {
                        QuanLyBienMuc wnd3 = new QuanLyBienMuc();
                        wnd3.Show();
                    }
                    break;
                case "Item4":
                    {
                        ThemDocGia wnd4 = new ThemDocGia();
                        wnd4.Show();
                    }
                    break;
                case "Item5":
                    {
                        ThietLapQuyDinh wnd5 = new ThietLapQuyDinh();
                        wnd5.Show();
                    }
                    break;
                case "Item6":
                    {
                        TimKiem wnd6 = new TimKiem();
                        wnd6.Show();
                    }
                    break;
            }
        }

        private void CategoryListCauthu_MyMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            /////            Important to set e.Handed = true to prevent event routing              ////
            e.Handled = true;
            ////////////////////////////////////////////////////////////////////////////////////////////
            ListBoxItem item = sender as ListBoxItem;
            string itemIndex = item.Name;
            switch (itemIndex)
            {
                case "Item0"://Tra cứu cầu thủ
                    {
                        
                    }
                    break;
                case "Item1":
                    {
                    }
                    break;
            }
        }

        private void CategoryListDoibong_MyMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            /////            Important to set e.Handed = true to prevent event routing              ////
            e.Handled = true;
            ////////////////////////////////////////////////////////////////////////////////////////////
            ListBoxItem item = sender as ListBoxItem;
            string itemIndex = item.Name;
            switch (itemIndex)
            {
                case "Item2":
                    {
                        
                    }
                    break;
            }
        }

        private void CategoryListHethong_MyMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            /////            Important to set e.Handed = true to prevent event routing              ////
            e.Handled = true;
            ////////////////////////////////////////////////////////////////////////////////////////////
        }


        #region Window Custom Title
        public const int WM_NCLBUTTONDOWN = 0xA1;
        public const int HT_CAPTION = 0x2;

        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

        [DllImport("user32.dll", CharSet = CharSet.Unicode, EntryPoint = "ReleaseCapture", SetLastError = true)]
        public static extern bool ReleaseMouseCapture();

        private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
        {
            ReleaseMouseCapture();
            SendMessage(new WindowInteropHelper(this).Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
        }

        private void CloseWindowButton(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            // TODO: Add event handler implementation here.
            this.Close();
        }
        #endregion


        #region IView 
        public ViewModel.IViewModel ViewModel
        {
            get
            {
                return DataContext as IViewModel;
            }
            set
            {
                DataContext = value;
            }
        }
        #endregion
    }
}
